#ifndef AppListSettingPage_h
#define AppListSettingPage_h

#include <akncheckboxsettingpage.h> 
#include "AppListSettings.h"
#include "MySelectableItem.h"

class CAppListSettingPage: public CAknCheckBoxSettingPage 
{
public:
	static CAppListSettingPage* NewL(const TDesC& aTitle, RArray<TUid>* aAppList, TInt aInd, TBool aIncludeUtils);
protected:
	CAppListSettingPage(CSelectionItemList* aList, RArray<TUid>* aAppList, TBool aIncludeUtils);
	~CAppListSettingPage();
	static CSelectionItemList* CreateSelectionListL();
	virtual void AcceptSettingL();
	virtual void ConstructL();
	virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
	virtual void SelectCurrentItemL();
protected:
	void NextPageL(TInt aScroll);
	void ShowPropertiesL();
	void HidePropertiesL();
	void AddPropertiesStringL(TBool aHidden);
	void AddApplicationsL();
	void AddApplicationsL(TBool aHidden);
	void DeleteApplicationsL();
	void DeleteSelectionListL(TInt aStartInd, TInt aEndInd);
	void UpdateListBoxL();
public:
	RArray<TUid>* iAppList;
	RArray<TUid> iTempAppList;
	CSelectionItemList* iSelectionList;
	TAppListSettings iSettings;
	TBool iIncludeUtils;
};

#endif